Micron Document
🎖️GitЯра🎖️

Node / meshtastic / Meshtastic-Android / files / core / model / src / commonTest / kotlin / org / meshtastic / core / model / util / MeshDataMapperTest.kt

Displaying Raw • Download

core/model/src/commonTest/kotlin/org/meshtastic/core/model/util/MeshDataMapperTest.kt 01cd54907d62cd90913d3d071b6bc240cae365ef (01cd5490) Text, 9.96 KB

T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.core.model.util

Tff7b72import T7ee787okio.ByteString.Companion.encodeUtf8
Tff7b72import T7ee787org.meshtastic.core.model.MeshUser
Tff7b72import T7ee787org.meshtastic.core.model.NodeAddress
Tff7b72import T7ee787org.meshtastic.proto.Config
Tff7b72import T7ee787org.meshtastic.proto.Data
Tff7b72import T7ee787org.meshtastic.proto.DeviceMetrics
Tff7b72import T7ee787org.meshtastic.proto.EnvironmentMetrics
Tff7b72import T7ee787org.meshtastic.proto.HardwareModel
Tff7b72import T7ee787org.meshtastic.proto.MeshPacket
Tff7b72import T7ee787org.meshtastic.proto.PortNum
Tff7b72import T7ee787org.meshtastic.proto.Position
Tff7b72import T7ee787org.meshtastic.proto.User
Tff7b72import T7ee787kotlin.test.Test
Tff7b72import T7ee787kotlin.test.assertEquals
Tff7b72import T7ee787kotlin.test.assertFalse
Tff7b72import T7ee787kotlin.test.assertNotNull
Tff7b72import T7ee787kotlin.test.assertNull
Tff7b72import T7ee787kotlin.test.assertTrue
Tff7b72import T7ee787org.meshtastic.core.model.DeviceMetrics Tff7b72as Te6edf3DomainDeviceMetrics
Tff7b72import T7ee787org.meshtastic.core.model.EnvironmentMetrics Tff7b72as Te6edf3DomainEnvironmentMetrics
Tff7b72import T7ee787org.meshtastic.core.model.Position Tff7b72as Te6edf3DomainPosition

Tff7b72class T56d364MeshDataMapperTest Tb4b4b4{

Tff7b72private Tff7b72val Te6edf3mapper Tff7b72= Te6edf3MeshDataMapperTb4b4b4(Te6edf3TestNodeIdLookupTb4b4b4(Tb4b4b4)Tb4b4b4)

Tf0883e@Test
Tff7b72fun Td2a8fftoDataPacket_returnsNullWhenPacketHasNoDecodedDataTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertNullTb4b4b4(Te6edf3mapperTb4b4b4.Te6edf3toDataPacketTb4b4b4(Te6edf3MeshPacketTb4b4b4(Te6edf3from Tff7b72= T79c0ff0Te6edf3x12345678Tb4b4b4)Tb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8fftoDataPacket_mapsMeshPacketFieldsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3payload Tff7b72= Ta5d6ff"Ta5d6ffmesh payloadTa5d6ff"Tb4b4b4.Te6edf3encodeUtf8Tb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3packet Tff7b72=
Te6edf3MeshPacketTb4b4b4(
Te6edf3from Tff7b72= T79c0ff0Te6edf3x12345678Tb4b4b4,
Te6edf3to Tff7b72= T79c0ff0Te6edf3x90ABCDEFTb4b4b4.Te6edf3toIntTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3rx_time Tff7b72= T79c0ff1T79c0ff2T79c0ff3Tb4b4b4,
Te6edf3id Tff7b72= T79c0ff4T79c0ff5T79c0ff6Tb4b4b4,
Te6edf3decoded Tff7b72= Te6edf3DataTb4b4b4(Te6edf3portnum Tff7b72= Te6edf3PortNumTb4b4b4.Te6edf3TEXT_MESSAGE_APPTb4b4b4, Te6edf3payload Tff7b72= Te6edf3payloadTb4b4b4, Te6edf3reply_id Tff7b72= T79c0ff7T79c0ff8T79c0ff9Tb4b4b4, Te6edf3emoji Tff7b72= T79c0ff3T79c0ff2T79c0ff1Tb4b4b4)Tb4b4b4,
Te6edf3hop_limit Tff7b72= T79c0ff3Tb4b4b4,
Te6edf3channel Tff7b72= T79c0ff4Tb4b4b4,
Te6edf3want_ack Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3hop_start Tff7b72= T79c0ff5Tb4b4b4,
Te6edf3rx_snr Tff7b72= T79c0ff6.5fTb4b4b4,
Te6edf3rx_rssi Tff7b72= Tff7b72-T79c0ff7T79c0ff0Tb4b4b4,
Te6edf3relay_node Tff7b72= T79c0ff7T79c0ff7Tb4b4b4,
Te6edf3via_mqtt Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3transport_mechanism Tff7b72= Te6edf3MeshPacketTb4b4b4.Te6edf3TransportMechanismTb4b4b4.Te6edf3TRANSPORT_MQTTTb4b4b4,
Tb4b4b4)

Tff7b72val Te6edf3mapped Tff7b72= Te6edf3mapperTb4b4b4.Te6edf3toDataPacketTb4b4b4(Te6edf3packetTb4b4b4)

Te6edf3assertNotNullTb4b4b4(Te6edf3mappedTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff!12345678Ta5d6ff"Tb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3fromTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff!90abcdefTa5d6ff"Tb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3toTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff1T79c0ff2T79c0ff3Te6edf3_000LTb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3timeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff4T79c0ff5T79c0ff6Tb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3idTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3PortNumTb4b4b4.Te6edf3TEXT_MESSAGE_APPTb4b4b4.Te6edf3valueTb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3dataTypeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3payloadTb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3bytesTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff3Tb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3hopLimitTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff4Tb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3channelTb4b4b4)
Te6edf3assertTrueTb4b4b4(Te6edf3mappedTb4b4b4.Te6edf3wantAckTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff5Tb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3hopStartTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff6.5fTb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3snrTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Tff7b72-T79c0ff7T79c0ff0Tb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3rssiTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff7T79c0ff8T79c0ff9Tb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3replyIdTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff7T79c0ff7Tb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3relayNodeTb4b4b4)
Te6edf3assertTrueTb4b4b4(Te6edf3mappedTb4b4b4.Te6edf3viaMqttTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff3T79c0ff2T79c0ff1Tb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3emojiTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3MeshPacketTb4b4b4.Te6edf3TransportMechanismTb4b4b4.Te6edf3TRANSPORT_MQTTTb4b4b4.Te6edf3valueTb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3transportMechanismTb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8fftoDataPacket_usesPkcChannelWhenPacketIsPkiEncryptedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3packet Tff7b72=
Te6edf3MeshPacketTb4b4b4(
Te6edf3from Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3to Tff7b72= T79c0ff2Tb4b4b4,
Te6edf3channel Tff7b72= T79c0ff2Tb4b4b4,
Te6edf3pki_encrypted Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3decoded Tff7b72= Te6edf3DataTb4b4b4(Te6edf3portnum Tff7b72= Te6edf3PortNumTb4b4b4.Te6edf3PRIVATE_APPTb4b4b4)Tb4b4b4,
Tb4b4b4)

Tff7b72val Te6edf3mapped Tff7b72= Te6edf3mapperTb4b4b4.Te6edf3toDataPacketTb4b4b4(Te6edf3packetTb4b4b4)

Te6edf3assertNotNullTb4b4b4(Te6edf3mappedTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3NodeAddressTb4b4b4.Te6edf3PKC_CHANNEL_INDEXTb4b4b4, Te6edf3mappedTb4b4b4.Te6edf3channelTb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffmeshUser_mapsProtoFieldsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3proto Tff7b72=
Te6edf3UserTb4b4b4(
Te6edf3id Tff7b72= Ta5d6ff"Ta5d6ff!cafebabeTa5d6ff"Tb4b4b4,
Te6edf3long_name Tff7b72= Ta5d6ff"Ta5d6ffMeshtastic UserTa5d6ff"Tb4b4b4,
Te6edf3short_name Tff7b72= Ta5d6ff"Ta5d6ffMUTa5d6ff"Tb4b4b4,
Te6edf3hw_model Tff7b72= Te6edf3HardwareModelTb4b4b4.Te6edf3TLORA_V2Tb4b4b4,
Te6edf3is_licensed Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3role Tff7b72= Te6edf3ConfigTb4b4b4.Te6edf3DeviceConfigTb4b4b4.Te6edf3RoleTb4b4b4.Te6edf3ROUTERTb4b4b4,
Tb4b4b4)

Tff7b72val Te6edf3user Tff7b72= Te6edf3MeshUserTb4b4b4(Te6edf3protoTb4b4b4)

Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff!cafebabeTa5d6ff"Tb4b4b4, Te6edf3userTb4b4b4.Te6edf3idTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ffMeshtastic UserTa5d6ff"Tb4b4b4, Te6edf3userTb4b4b4.Te6edf3longNameTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ffMUTa5d6ff"Tb4b4b4, Te6edf3userTb4b4b4.Te6edf3shortNameTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3HardwareModelTb4b4b4.Te6edf3TLORA_V2Tb4b4b4, Te6edf3userTb4b4b4.Te6edf3hwModelTb4b4b4)
Te6edf3assertTrueTb4b4b4(Te6edf3userTb4b4b4.Te6edf3isLicensedTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ConfigTb4b4b4.Te6edf3DeviceConfigTb4b4b4.Te6edf3RoleTb4b4b4.Te6edf3ROUTERTb4b4b4.Te6edf3valueTb4b4b4, Te6edf3userTb4b4b4.Te6edf3roleTb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffmeshUser_defaultsEmptyFieldsFromEmptyProtoTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3user Tff7b72= Te6edf3MeshUserTb4b4b4(Te6edf3UserTb4b4b4(Tb4b4b4)Tb4b4b4)

Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3userTb4b4b4.Te6edf3idTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3userTb4b4b4.Te6edf3longNameTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3userTb4b4b4.Te6edf3shortNameTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3HardwareModelTb4b4b4.Te6edf3UNSETTb4b4b4, Te6edf3userTb4b4b4.Te6edf3hwModelTb4b4b4)
Te6edf3assertFalseTb4b4b4(Te6edf3userTb4b4b4.Te6edf3isLicensedTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3userTb4b4b4.Te6edf3roleTb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffposition_mapsScaledCoordinatesAndProvidedTimeTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3proto Tff7b72=
Te6edf3PositionTb4b4b4(
Te6edf3latitude_i Tff7b72= T79c0ff3T79c0ff7T79c0ff7T79c0ff7T79c0ff4T79c0ff9T79c0ff0T79c0ff0T79c0ff0Tb4b4b4,
Te6edf3longitude_i Tff7b72= Tff7b72-T79c0ff1T79c0ff2T79c0ff2T79c0ff4T79c0ff1T79c0ff9T79c0ff4T79c0ff0T79c0ff0T79c0ff0Tb4b4b4,
Te6edf3altitude Tff7b72= T79c0ff1T79c0ff5Tb4b4b4,
Te6edf3time Tff7b72= T79c0ff4T79c0ff5T79c0ff6Tb4b4b4,
Te6edf3sats_in_view Tff7b72= T79c0ff9Tb4b4b4,
Te6edf3ground_speed Tff7b72= T79c0ff1T79c0ff2Tb4b4b4,
Te6edf3ground_track Tff7b72= T79c0ff1T79c0ff8T79c0ff0Tb4b4b4,
Te6edf3precision_bits Tff7b72= T79c0ff7Tb4b4b4,
Tb4b4b4)

Tff7b72val Te6edf3position Tff7b72= Te6edf3DomainPositionTb4b4b4(Te6edf3protoTb4b4b4, Te6edf3defaultTime Tff7b72= T79c0ff1T79c0ff2T79c0ff3Tb4b4b4)

Te6edf3assertEqualsTb4b4b4(T79c0ff3T79c0ff7.7749Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3latitudeTb4b4b4, T79c0ff1e-6Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Tff7b72-T79c0ff1T79c0ff2T79c0ff2.4194Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3longitudeTb4b4b4, T79c0ff1e-6Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff1T79c0ff5Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3altitudeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff4T79c0ff5T79c0ff6Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3timeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff9Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3satellitesInViewTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff1T79c0ff2Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3groundSpeedTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff1T79c0ff8T79c0ff0Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3groundTrackTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff7Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3precisionBitsTb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffposition_usesDefaultTimeAndZeroValuesForUnsetProtoFieldsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3position Tff7b72= Te6edf3DomainPositionTb4b4b4(Te6edf3PositionTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3defaultTime Tff7b72= T79c0ff7T79c0ff8T79c0ff9Tb4b4b4)

Te6edf3assertEqualsTb4b4b4(T79c0ff0.0Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3latitudeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0.0Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3longitudeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3altitudeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff7T79c0ff8T79c0ff9Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3timeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3satellitesInViewTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3groundSpeedTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3groundTrackTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3positionTb4b4b4.Te6edf3precisionBitsTb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffdeviceMetrics_mapsProtoFieldsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3proto Tff7b72=
Te6edf3DeviceMetricsTb4b4b4(
Te6edf3battery_level Tff7b72= T79c0ff8T79c0ff7Tb4b4b4,
Te6edf3voltage Tff7b72= T79c0ff4.12fTb4b4b4,
Te6edf3channel_utilization Tff7b72= T79c0ff3T79c0ff2.5fTb4b4b4,
Te6edf3air_util_tx Tff7b72= T79c0ff7.75fTb4b4b4,
Te6edf3uptime_seconds Tff7b72= T79c0ff3T79c0ff6T79c0ff0T79c0ff0Tb4b4b4,
Tb4b4b4)

Tff7b72val Te6edf3metrics Tff7b72= Te6edf3DomainDeviceMetricsTb4b4b4(Te6edf3protoTb4b4b4, Te6edf3telemetryTime Tff7b72= T79c0ff1T79c0ff2T79c0ff3Tb4b4b4)

Te6edf3assertEqualsTb4b4b4(T79c0ff1T79c0ff2T79c0ff3Tb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3timeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff8T79c0ff7Tb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3batteryLevelTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff4.12fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3voltageTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff3T79c0ff2.5fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3channelUtilizationTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff7.75fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3airUtilTxTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff3T79c0ff6T79c0ff0T79c0ff0Tb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3uptimeSecondsTb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffdeviceMetrics_defaultsUnsetFieldsToZeroTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3metrics Tff7b72= Te6edf3DomainDeviceMetricsTb4b4b4(Te6edf3DeviceMetricsTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3telemetryTime Tff7b72= T79c0ff2T79c0ff2T79c0ff2Tb4b4b4)

Te6edf3assertEqualsTb4b4b4(T79c0ff2T79c0ff2T79c0ff2Tb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3timeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3batteryLevelTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3voltageTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3channelUtilizationTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3airUtilTxTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3uptimeSecondsTb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffenvironmentMetrics_mapsTelemetryFieldsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3proto Tff7b72=
Te6edf3EnvironmentMetricsTb4b4b4(
Te6edf3temperature Tff7b72= T79c0ff2T79c0ff4.5fTb4b4b4,
Te6edf3relative_humidity Tff7b72= T79c0ff5T79c0ff5.5fTb4b4b4,
Te6edf3soil_temperature Tff7b72= T79c0ff1T79c0ff8.25fTb4b4b4,
Te6edf3soil_moisture Tff7b72= T79c0ff4T79c0ff4Tb4b4b4,
Te6edf3barometric_pressure Tff7b72= T79c0ff1T79c0ff0T79c0ff1T79c0ff3.2fTb4b4b4,
Te6edf3gas_resistance Tff7b72= T79c0ff1T79c0ff0.5fTb4b4b4,
Te6edf3voltage Tff7b72= T79c0ff3.7fTb4b4b4,
Te6edf3current Tff7b72= T79c0ff0.8fTb4b4b4,
Te6edf3iaq Tff7b72= T79c0ff4T79c0ff2Tb4b4b4,
Te6edf3lux Tff7b72= T79c0ff3T79c0ff2T79c0ff1.5fTb4b4b4,
Te6edf3uv_lux Tff7b72= T79c0ff4.2fTb4b4b4,
Tb4b4b4)

Tff7b72val Te6edf3metrics Tff7b72= Te6edf3DomainEnvironmentMetricsTb4b4b4.Te6edf3fromTelemetryProtoTb4b4b4(Te6edf3protoTb4b4b4, Te6edf3time Tff7b72= T79c0ff9T79c0ff9T79c0ff9Tb4b4b4)

Te6edf3assertEqualsTb4b4b4(T79c0ff9T79c0ff9T79c0ff9Tb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3timeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff2T79c0ff4.5fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3temperatureTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff5T79c0ff5.5fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3relativeHumidityTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff1T79c0ff8.25fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3soilTemperatureTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff4T79c0ff4Tb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3soilMoistureTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff1T79c0ff0T79c0ff1T79c0ff3.2fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3barometricPressureTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff1T79c0ff0.5fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3gasResistanceTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff3.7fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3voltageTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0.8fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3currentTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff4T79c0ff2Tb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3iaqTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff3T79c0ff2T79c0ff1.5fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3luxTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff4.2fTb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3uvLuxTb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffenvironmentMetrics_filtersSentinelAndInvalidValuesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3proto Tff7b72=
Te6edf3EnvironmentMetricsTb4b4b4(
Te6edf3temperature Tff7b72= Tffa657FloatTb4b4b4.Te6edf3NaNTb4b4b4,
Te6edf3relative_humidity Tff7b72= T79c0ff0.0fTb4b4b4,
Te6edf3soil_temperature Tff7b72= Tffa657FloatTb4b4b4.Te6edf3NaNTb4b4b4,
Te6edf3soil_moisture Tff7b72= Tffa657IntTb4b4b4.Te6edf3MIN_VALUETb4b4b4,
Te6edf3barometric_pressure Tff7b72= Tffa657FloatTb4b4b4.Te6edf3NaNTb4b4b4,
Te6edf3gas_resistance Tff7b72= Tffa657FloatTb4b4b4.Te6edf3NaNTb4b4b4,
Te6edf3voltage Tff7b72= Tffa657FloatTb4b4b4.Te6edf3NaNTb4b4b4,
Te6edf3current Tff7b72= Tffa657FloatTb4b4b4.Te6edf3NaNTb4b4b4,
Te6edf3iaq Tff7b72= Tffa657IntTb4b4b4.Te6edf3MIN_VALUETb4b4b4,
Te6edf3lux Tff7b72= Tffa657FloatTb4b4b4.Te6edf3NaNTb4b4b4,
Te6edf3uv_lux Tff7b72= Tffa657FloatTb4b4b4.Te6edf3NaNTb4b4b4,
Tb4b4b4)

Tff7b72val Te6edf3metrics Tff7b72= Te6edf3DomainEnvironmentMetricsTb4b4b4.Te6edf3fromTelemetryProtoTb4b4b4(Te6edf3protoTb4b4b4, Te6edf3time Tff7b72= T79c0ff1T79c0ff1T79c0ff1Tb4b4b4)

Te6edf3assertEqualsTb4b4b4(T79c0ff1T79c0ff1T79c0ff1Tb4b4b4, Te6edf3metricsTb4b4b4.Te6edf3timeTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3metricsTb4b4b4.Te6edf3temperatureTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3metricsTb4b4b4.Te6edf3relativeHumidityTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3metricsTb4b4b4.Te6edf3soilTemperatureTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3metricsTb4b4b4.Te6edf3soilMoistureTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3metricsTb4b4b4.Te6edf3barometricPressureTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3metricsTb4b4b4.Te6edf3gasResistanceTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3metricsTb4b4b4.Te6edf3voltageTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3metricsTb4b4b4.Te6edf3currentTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3metricsTb4b4b4.Te6edf3iaqTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3metricsTb4b4b4.Te6edf3luxTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3metricsTb4b4b4.Te6edf3uvLuxTb4b4b4)
Tb4b4b4}

Tff7b72private Tff7b72class T56d364TestNodeIdLookup Tb4b4b4: Te6edf3NodeIdLookup Tb4b4b4{
Tff7b72override Tff7b72fun Td2a8fftoNodeIDTb4b4b4(Te6edf3nodeNumTb4b4b4: Tffa657IntTb4b4b4)Tb4b4b4: Tffa657String Tff7b72= Te6edf3NodeAddressTb4b4b4.Te6edf3numToDefaultIdTb4b4b4(Te6edf3nodeNumTb4b4b4)
Tb4b4b4}
Tb4b4b4}

Served by rngit 1.5.0 - Generated in 0.13s